package com.alibaba.citrus.cr.mn.order.center.facade.adapter;

import com.alibaba.citrus.cr.mn.order.center.facade.adapter.dataobject.request.FulfillmentOrderBatchGetRequest;
import com.alibaba.citrus.cr.mn.order.center.facade.adapter.dataobject.request.FulfillmentOrderSearchOrderRequest;
import com.alibaba.citrus.cr.mn.order.center.facade.adapter.dataobject.request.SearchFulfullmentOrderRequest;
import com.alibaba.citrus.cr.mn.order.center.facade.adapter.dataobject.response.FulfillmentGetResDTO;
import com.alibaba.citrus.cr.mn.order.center.facade.adapter.dataobject.response.FulfillmentOrderDetailResDTO;
import com.alibaba.cloud.retail.delivery.api.model.delivery.request.fulfillment.SearchOrderDetailReq;
import com.alibaba.cloud.retail.delivery.api.model.delivery.response.fulfillment.FulfillmentGetRes;
import com.alibaba.cloud.retail.delivery.api.model.delivery.response.fulfillment.FulfillmentGetResponse;
import com.alibaba.lattice2.epoch.sdk.model.Result;
import com.epoch.app.mnordercenter.orderbaserequest.OrderAtomUpdateResponse;

import java.util.List;

public interface FulfillmentOrderAbilityAdapter {

    Result<FulfillmentGetResponse> getOne(SearchOrderDetailReq request);

    Result<List<FulfillmentOrderDetailResDTO>> searchList(FulfillmentOrderSearchOrderRequest searchOrderReq);

    Result<List<FulfillmentGetResDTO>> batchGet(FulfillmentOrderBatchGetRequest fulfillmentOrderBatchGetRequest);

    Result<List<FulfillmentGetResDTO>> searchFulfillmentOrder(SearchFulfullmentOrderRequest searchFulfullmentOrderRequest);

    OrderAtomUpdateResponse cancelOrderInner(String salesOrderNo, String updater);

    List<FulfillmentGetRes> searchAllTypeFulfillmentOrder(String salesOrderNo);
}
